import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.read_excel('最新发布的北京二手房数据_预处理.xlsx')
plt.rcParams['font.sans-serif'] = 'SimHei'

plt.figure(figsize=(12, 6))
#绘制各区二手房数量柱状图
df_count = df.groupby('所在区').size()
ax1 = plt.subplot(1, 1, 1)
x = df_count.index
height = df_count
ax1.bar(x, height, width=0.6, color=(0.894, 0, 0.498))
ax1.set_ylabel('房源数量')
ax1.legend(('数量',), loc='upper left')
plt.title('各区二手房数量和均价双轴图')
#绘制各区二手房均价折线图
df_price = df.groupby('所在区')['单价（元/平方米）'].agg('mean')
ax2 = ax1.twinx()
y = df_price
ax2.plot(x, y, 'b-.*')
ax2.set_ylabel('房源均价/（元/平方米）')
ax2.legend(('均价',), loc='upper right')
for a, b in zip(x, y):
    ax2.text(a, b, '%d' % b, ha='center')
plt.show()


plt.figure(figsize=(12, 6))
#绘制北京二手房面积区间占比饼状图
df_area_count = df.groupby('面积区间').size()
plt.subplot(1, 2, 1)
x = df_area_count
label = df_area_count.index
plt.pie(x, labels=label, autopct='%.2f%%')
plt.title('北京二手房面积区间占比饼状图')
#绘制北京二手房总价区间占比饼状图
df_totalPrice_count = df.groupby('总价区间').size()
plt.subplot(1, 2, 2)
x = df_totalPrice_count
label = df_totalPrice_count.index
plt.pie(x, labels=label, autopct='%.2f%%')
plt.title('北京二手房总价区间占比饼状图')
plt.show()


df_average = df.groupby('房龄').agg('mean')
plt.figure(figsize=(12, 6))
x = df_average.index
y = df_average['单价（元/平方米）']
plt.scatter(x, y, color=(0.894, 0, 0.498))
plt.xlabel('房龄')
plt.ylabel('均价/（元/平方米）')
plt.title('二手房房龄与均价的相关性散点图')
plt.show()


df1 = pd.pivot_table(df, values='单价（元/平方米）', index='装修', columns='房源标签', aggfunc='mean')
plt.figure()
width = 0.3
x = np.arange(4)
plt.bar(x, df1['不近地铁'], width)
x = x + width
plt.bar(x, df1['近地铁'], width)
plt.xlabel('装修')
plt.ylabel('均价/（元/平方米）')
plt.legend(df1.columns)
plt.xticks(np.arange(4) + width / 2, df1.index)
plt.title('是否靠近地铁的不同装修二手房均价柱状图')
plt.show()

















